Mobile device emulators allow software developers to run and test their mobile applications without a physical mobile device. The emulators run on any general purpose computer and simulate the operating system and the hardware components that are included in a mobile device, such as mobile processors, liquid crystal display, flash storage, cellular modem, etc.
For mobile devices, it is critical that applications consume as little power as possible in order to stretch battery life of the mobile devices. Currently, there exists no easy way to find out the amount of energy consumed by mobile device hardware components when testing mobile applications with the emulators. The emulators can simulate a battery usage widget of the mobile operating system, but the battery usage widget only displays the power usage of applications as a percentage of all the current running applications and hardware, including the emulated mobile operating system. This energy consumption data provides limited information on energy consumed by the application under test. It cannot help a developer optimize the code so that an application uses as little power as possible.
Presently, the only way to accurately measure energy utilization of an application is to run the application on specialized testing hardware: a mobile device outfitted with physical probes that measure the energy consumption of individual hardware components as the application runs on specialized testing hardware. Because of the wide variety of mobile devices and device makers, the specific hardware included in mobile devices can vary widely. As such, multiple testing hardware configurations must be utilized in order to cover the wide variety of mobile devices. This method, however, is not a practical solution for software developers, especially smaller developers that may not have the resources to acquire specialized testing hardware. Thus, there is a need for emulators that accurately and reliably simulate energy consumption in mobile devices.